class ApplayWithdrawalModel {
  int status;
  Data data;
  String msg;
  String error;

  ApplayWithdrawalModel({this.status, this.data, this.msg, this.error});

  ApplayWithdrawalModel.fromJson(Map<String, dynamic> json) {
    status = json['status'];
    data = json['data'] != null ? new Data.fromJson(json['data']) : null;
    msg = json['msg'];
    error = json['error'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['status'] = this.status;
    if (this.data != null) {
      data['data'] = this.data.toJson();
    }
    data['msg'] = this.msg;
    data['error'] = this.error;
    return data;
  }
}

class Data {
  int iD;
  String createdAt;
  String updatedAt;
  Null deletedAt;
  int storeManagerId;
  String innerId;
  String applicantName;
  String applicantPhone;
  int applicantRoleId;
  int storeId;
  int centScorePrice;
  int centRmbPrice;
  int centPayPrice;
  int centServicePrice;
  String scoreRatio;
  String withdrawRatio;
  String status;
  int innerClerkId;
  String comment;
  String bankName;
  String subBankName;
  String bankAccount;
  int storeAccountId;
  Store store;
  ApplicantRoleInfo applicantRoleInfo;

  Data(
      {this.iD,
      this.createdAt,
      this.updatedAt,
      this.deletedAt,
      this.storeManagerId,
      this.innerId,
      this.applicantName,
      this.applicantPhone,
      this.applicantRoleId,
      this.storeId,
      this.centScorePrice,
      this.centRmbPrice,
      this.centPayPrice,
      this.centServicePrice,
      this.scoreRatio,
      this.withdrawRatio,
      this.status,
      this.innerClerkId,
      this.comment,
      this.bankName,
      this.subBankName,
      this.bankAccount,
      this.storeAccountId,
      this.store,
      this.applicantRoleInfo});

  Data.fromJson(Map<String, dynamic> json) {
    iD = json['ID'];
    createdAt = json['CreatedAt'];
    updatedAt = json['UpdatedAt'];
    deletedAt = json['DeletedAt'];
    storeManagerId = json['StoreManagerId'];
    innerId = json['InnerId'];
    applicantName = json['ApplicantName'];
    applicantPhone = json['ApplicantPhone'];
    applicantRoleId = json['ApplicantRoleId'];
    storeId = json['StoreId'];
    centScorePrice = json['CentScorePrice'];
    centRmbPrice = json['CentRmbPrice'];
    centPayPrice = json['CentPayPrice'];
    centServicePrice = json['CentServicePrice'];
    scoreRatio = json['ScoreRatio'];
    withdrawRatio = json['WithdrawRatio'];
    status = json['Status'];
    innerClerkId = json['InnerClerkId'];
    comment = json['Comment'];
    bankName = json['BankName'];
    subBankName = json['SubBankName'];
    bankAccount = json['BankAccount'];
    storeAccountId = json['StoreAccountId'];
    store = json['Store'] != null ? new Store.fromJson(json['Store']) : null;
    applicantRoleInfo = json['ApplicantRoleInfo'] != null
        ? new ApplicantRoleInfo.fromJson(json['ApplicantRoleInfo'])
        : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ID'] = this.iD;
    data['CreatedAt'] = this.createdAt;
    data['UpdatedAt'] = this.updatedAt;
    data['DeletedAt'] = this.deletedAt;
    data['StoreManagerId'] = this.storeManagerId;
    data['InnerId'] = this.innerId;
    data['ApplicantName'] = this.applicantName;
    data['ApplicantPhone'] = this.applicantPhone;
    data['ApplicantRoleId'] = this.applicantRoleId;
    data['StoreId'] = this.storeId;
    data['CentScorePrice'] = this.centScorePrice;
    data['CentRmbPrice'] = this.centRmbPrice;
    data['CentPayPrice'] = this.centPayPrice;
    data['CentServicePrice'] = this.centServicePrice;
    data['ScoreRatio'] = this.scoreRatio;
    data['WithdrawRatio'] = this.withdrawRatio;
    data['Status'] = this.status;
    data['InnerClerkId'] = this.innerClerkId;
    data['Comment'] = this.comment;
    data['BankName'] = this.bankName;
    data['SubBankName'] = this.subBankName;
    data['BankAccount'] = this.bankAccount;
    data['StoreAccountId'] = this.storeAccountId;
    if (this.store != null) {
      data['Store'] = this.store.toJson();
    }
    if (this.applicantRoleInfo != null) {
      data['ApplicantRoleInfo'] = this.applicantRoleInfo.toJson();
    }
    return data;
  }
}

class Store {
  int iD;
  String createdAt;
  String updatedAt;
  Null deletedAt;
  int merchantId;
  String brandName;
  String shopName;
  String address;
  String status;
  String scoreRatio;
  String withdrawRatio;
  String ownerName;
  String ownerPhone;
  String mainCategory;
  String subCategory;
  String pictureList;
  List<String> pictureListArr;
  String logoPic;
  String firstPic;
  int discountRatio;
  String openTime;
  List<String> openTimeArr;
  int centPersonValue;
  String storeScore;
  int sortNumber;
  String qrCodeUrl;
  String accountName;
  String bankName;
  String subBankName;
  String bankAccount;
  String otherRights;
  String longitude;
  String latitude;
  String comment;
  Merchant merchant;
  Null menuList;

  Store(
      {this.iD,
      this.createdAt,
      this.updatedAt,
      this.deletedAt,
      this.merchantId,
      this.brandName,
      this.shopName,
      this.address,
      this.status,
      this.scoreRatio,
      this.withdrawRatio,
      this.ownerName,
      this.ownerPhone,
      this.mainCategory,
      this.subCategory,
      this.pictureList,
      this.pictureListArr,
      this.logoPic,
      this.firstPic,
      this.discountRatio,
      this.openTime,
      this.openTimeArr,
      this.centPersonValue,
      this.storeScore,
      this.sortNumber,
      this.qrCodeUrl,
      this.accountName,
      this.bankName,
      this.subBankName,
      this.bankAccount,
      this.otherRights,
      this.longitude,
      this.latitude,
      this.comment,
      this.merchant,
      this.menuList});

  Store.fromJson(Map<String, dynamic> json) {
    iD = json['ID'];
    createdAt = json['CreatedAt'];
    updatedAt = json['UpdatedAt'];
    deletedAt = json['DeletedAt'];
    merchantId = json['MerchantId'];
    brandName = json['BrandName'];
    shopName = json['ShopName'];
    address = json['Address'];
    status = json['Status'];
    scoreRatio = json['ScoreRatio'];
    withdrawRatio = json['WithdrawRatio'];
    ownerName = json['OwnerName'];
    ownerPhone = json['OwnerPhone'];
    mainCategory = json['MainCategory'];
    subCategory = json['SubCategory'];
    pictureList = json['PictureList'];
    pictureListArr = json['PictureListArr'].cast<String>();
    logoPic = json['LogoPic'];
    firstPic = json['FirstPic'];
    discountRatio = json['DiscountRatio'];
    openTime = json['OpenTime'];
    openTimeArr = json['OpenTimeArr'].cast<String>();
    centPersonValue = json['CentPersonValue'];
    storeScore = json['StoreScore'];
    sortNumber = json['SortNumber'];
    qrCodeUrl = json['QrCodeUrl'];
    accountName = json['AccountName'];
    bankName = json['BankName'];
    subBankName = json['SubBankName'];
    bankAccount = json['BankAccount'];
    otherRights = json['OtherRights'];
    longitude = json['Longitude'];
    latitude = json['Latitude'];
    comment = json['Comment'];
    merchant = json['Merchant'] != null
        ? new Merchant.fromJson(json['Merchant'])
        : null;
    menuList = json['MenuList'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ID'] = this.iD;
    data['CreatedAt'] = this.createdAt;
    data['UpdatedAt'] = this.updatedAt;
    data['DeletedAt'] = this.deletedAt;
    data['MerchantId'] = this.merchantId;
    data['BrandName'] = this.brandName;
    data['ShopName'] = this.shopName;
    data['Address'] = this.address;
    data['Status'] = this.status;
    data['ScoreRatio'] = this.scoreRatio;
    data['WithdrawRatio'] = this.withdrawRatio;
    data['OwnerName'] = this.ownerName;
    data['OwnerPhone'] = this.ownerPhone;
    data['MainCategory'] = this.mainCategory;
    data['SubCategory'] = this.subCategory;
    data['PictureList'] = this.pictureList;
    data['PictureListArr'] = this.pictureListArr;
    data['LogoPic'] = this.logoPic;
    data['FirstPic'] = this.firstPic;
    data['DiscountRatio'] = this.discountRatio;
    data['OpenTime'] = this.openTime;
    data['OpenTimeArr'] = this.openTimeArr;
    data['CentPersonValue'] = this.centPersonValue;
    data['StoreScore'] = this.storeScore;
    data['SortNumber'] = this.sortNumber;
    data['QrCodeUrl'] = this.qrCodeUrl;
    data['AccountName'] = this.accountName;
    data['BankName'] = this.bankName;
    data['SubBankName'] = this.subBankName;
    data['BankAccount'] = this.bankAccount;
    data['OtherRights'] = this.otherRights;
    data['Longitude'] = this.longitude;
    data['Latitude'] = this.latitude;
    data['Comment'] = this.comment;
    if (this.merchant != null) {
      data['Merchant'] = this.merchant.toJson();
    }
    data['MenuList'] = this.menuList;
    return data;
  }
}

class Merchant {
  int iD;
  String createdAt;
  String updatedAt;
  Null deletedAt;
  String name;
  String code;
  String businessLicensePic;
  String permitLicensePic;
  String openLicensePic;
  String legalPersonName;
  String legalPersonContact;
  String legalPersonIdPic;
  String bankName;
  String subBankName;
  String bankAccount;

  Merchant(
      {this.iD,
      this.createdAt,
      this.updatedAt,
      this.deletedAt,
      this.name,
      this.code,
      this.businessLicensePic,
      this.permitLicensePic,
      this.openLicensePic,
      this.legalPersonName,
      this.legalPersonContact,
      this.legalPersonIdPic,
      this.bankName,
      this.subBankName,
      this.bankAccount});

  Merchant.fromJson(Map<String, dynamic> json) {
    iD = json['ID'];
    createdAt = json['CreatedAt'];
    updatedAt = json['UpdatedAt'];
    deletedAt = json['DeletedAt'];
    name = json['Name'];
    code = json['Code'];
    businessLicensePic = json['BusinessLicensePic'];
    permitLicensePic = json['PermitLicensePic'];
    openLicensePic = json['OpenLicensePic'];
    legalPersonName = json['LegalPersonName'];
    legalPersonContact = json['LegalPersonContact'];
    legalPersonIdPic = json['LegalPersonIdPic'];
    bankName = json['BankName'];
    subBankName = json['SubBankName'];
    bankAccount = json['BankAccount'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ID'] = this.iD;
    data['CreatedAt'] = this.createdAt;
    data['UpdatedAt'] = this.updatedAt;
    data['DeletedAt'] = this.deletedAt;
    data['Name'] = this.name;
    data['Code'] = this.code;
    data['BusinessLicensePic'] = this.businessLicensePic;
    data['PermitLicensePic'] = this.permitLicensePic;
    data['OpenLicensePic'] = this.openLicensePic;
    data['LegalPersonName'] = this.legalPersonName;
    data['LegalPersonContact'] = this.legalPersonContact;
    data['LegalPersonIdPic'] = this.legalPersonIdPic;
    data['BankName'] = this.bankName;
    data['SubBankName'] = this.subBankName;
    data['BankAccount'] = this.bankAccount;
    return data;
  }
}

class ApplicantRoleInfo {
  int iD;
  String createdAt;
  String updatedAt;
  Null deletedAt;
  int managerId;
  int storeId;
  String title;
  String account;
  String withdraw;
  String clerk;
  String store;
  String qrCode;
  AccountStruct accountStruct;
  WithdrawStruct withdrawStruct;
  ClerkStruct clerkStruct;
  StoreStruct storeStruct;
  QrCodeStruct qrCodeStruct;

  ApplicantRoleInfo(
      {this.iD,
      this.createdAt,
      this.updatedAt,
      this.deletedAt,
      this.managerId,
      this.storeId,
      this.title,
      this.account,
      this.withdraw,
      this.clerk,
      this.store,
      this.qrCode,
      this.accountStruct,
      this.withdrawStruct,
      this.clerkStruct,
      this.storeStruct,
      this.qrCodeStruct});

  ApplicantRoleInfo.fromJson(Map<String, dynamic> json) {
    iD = json['ID'];
    createdAt = json['CreatedAt'];
    updatedAt = json['UpdatedAt'];
    deletedAt = json['DeletedAt'];
    managerId = json['ManagerId'];
    storeId = json['StoreId'];
    title = json['Title'];
    account = json['Account'];
    withdraw = json['Withdraw'];
    clerk = json['Clerk'];
    store = json['Store'];
    qrCode = json['QrCode'];
    accountStruct = json['AccountStruct'] != null
        ? new AccountStruct.fromJson(json['AccountStruct'])
        : null;
    withdrawStruct = json['WithdrawStruct'] != null
        ? new WithdrawStruct.fromJson(json['WithdrawStruct'])
        : null;
    clerkStruct = json['ClerkStruct'] != null
        ? new ClerkStruct.fromJson(json['ClerkStruct'])
        : null;
    storeStruct = json['StoreStruct'] != null
        ? new StoreStruct.fromJson(json['StoreStruct'])
        : null;
    qrCodeStruct = json['QrCodeStruct'] != null
        ? new QrCodeStruct.fromJson(json['QrCodeStruct'])
        : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ID'] = this.iD;
    data['CreatedAt'] = this.createdAt;
    data['UpdatedAt'] = this.updatedAt;
    data['DeletedAt'] = this.deletedAt;
    data['ManagerId'] = this.managerId;
    data['StoreId'] = this.storeId;
    data['Title'] = this.title;
    data['Account'] = this.account;
    data['Withdraw'] = this.withdraw;
    data['Clerk'] = this.clerk;
    data['Store'] = this.store;
    data['QrCode'] = this.qrCode;
    if (this.accountStruct != null) {
      data['AccountStruct'] = this.accountStruct.toJson();
    }
    if (this.withdrawStruct != null) {
      data['WithdrawStruct'] = this.withdrawStruct.toJson();
    }
    if (this.clerkStruct != null) {
      data['ClerkStruct'] = this.clerkStruct.toJson();
    }
    if (this.storeStruct != null) {
      data['StoreStruct'] = this.storeStruct.toJson();
    }
    if (this.qrCodeStruct != null) {
      data['QrCodeStruct'] = this.qrCodeStruct.toJson();
    }
    return data;
  }
}

class AccountStruct {
  int read;
  int create;
  int update;
  int delete;

  AccountStruct({this.read, this.create, this.update, this.delete});

  AccountStruct.fromJson(Map<String, dynamic> json) {
    read = json['Read'];
    create = json['Create'];
    update = json['Update'];
    delete = json['Delete'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Read'] = this.read;
    data['Create'] = this.create;
    data['Update'] = this.update;
    data['Delete'] = this.delete;
    return data;
  }
}

class WithdrawStruct {
  int read;
  int create;
  int update;
  int delete;

  WithdrawStruct({this.read, this.create, this.update, this.delete});

  WithdrawStruct.fromJson(Map<String, dynamic> json) {
    read = json['Read'];
    create = json['Create'];
    update = json['Update'];
    delete = json['Delete'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Read'] = this.read;
    data['Create'] = this.create;
    data['Update'] = this.update;
    data['Delete'] = this.delete;
    return data;
  }
}

class ClerkStruct {
  int read;
  int create;
  int update;
  int delete;

  ClerkStruct({this.read, this.create, this.update, this.delete});

  ClerkStruct.fromJson(Map<String, dynamic> json) {
    read = json['Read'];
    create = json['Create'];
    update = json['Update'];
    delete = json['Delete'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Read'] = this.read;
    data['Create'] = this.create;
    data['Update'] = this.update;
    data['Delete'] = this.delete;
    return data;
  }
}

class StoreStruct {
  int read;
  int create;
  int update;
  int delete;

  StoreStruct({this.read, this.create, this.update, this.delete});

  StoreStruct.fromJson(Map<String, dynamic> json) {
    read = json['Read'];
    create = json['Create'];
    update = json['Update'];
    delete = json['Delete'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Read'] = this.read;
    data['Create'] = this.create;
    data['Update'] = this.update;
    data['Delete'] = this.delete;
    return data;
  }
}

class QrCodeStruct {
  int read;
  int create;
  int update;
  int delete;

  QrCodeStruct({this.read, this.create, this.update, this.delete});

  QrCodeStruct.fromJson(Map<String, dynamic> json) {
    read = json['Read'];
    create = json['Create'];
    update = json['Update'];
    delete = json['Delete'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Read'] = this.read;
    data['Create'] = this.create;
    data['Update'] = this.update;
    data['Delete'] = this.delete;
    return data;
  }
}
